package com.drg.center.service;

import com.drg.center.entity.param.SysDictItemAddDTO;
import com.drg.center.entity.param.SysDictItemEditDTO;
import com.drg.center.entity.param.SysDictItemListDTO;
import com.drg.center.entity.result.SysDictItemVO;
import com.guaike.core.entity.result.ItemVO;
import com.guaike.core.entity.result.Result;

import java.util.List;
import java.util.Map;

/**
 * @Author: zhangxilin
 * @Date: 2023/10/26
 */
public interface DictItemService {

    /**
     * 列表
     * @param param
     * @return
     */
    Result<List<SysDictItemVO>> list(SysDictItemListDTO param);

    /**
     * 字典信息Map
     * @param dictCodeList
     * @return
     */
    Map<String, List<SysDictItemVO>> findMap(List<String> dictCodeList);

    /**
     * 添加
     * @param param
     * @return
     */
    Result<Boolean> add(SysDictItemAddDTO param);

    /**
     * 编辑
     * @param param
     * @return
     */
    Result<Boolean> edit(SysDictItemEditDTO param);

    /**
     * 删除
     * @param id
     * @return
     */
    Result<Boolean> delete(Long id);

    /**
     * 同步单个字典类型到缓存
     * @param dictCode
     */
    void syncCache(String dictCode);

    /**
     * 同步全部字典类型到缓存
     */
    void syncCache();

    /**
     * 查询字典数据
     * @param dictCodeList
     * @return
     */
    Result<Map<String, List<ItemVO>>> findDict(List<String> dictCodeList);
}
